package com.play2gether;

import android.annotation.TargetApi;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;

/**
 * Created by Raul on 19/05/14.
 */
public class indexFormularios extends ActionBarActivity implements View.OnClickListener {

    public ListView lstOpciones;
    public ArrayList<listaFormularios> lista = new ArrayList<listaFormularios>();
    listaFormularios formulario;

    public String[] estado;
    public String id_usuario;
    private DataBaseManager db;
    public TextView noFormulario;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.index_formularios);

        Bundle bundle = getIntent().getExtras();
        id_usuario = bundle.getString("id");
        estado = bundle.getStringArray("estado");

        configurarVista();
        configurarNavbar();
    }

    private void configurarVista() {
        db = new DataBaseManager(this);
        Cursor c = db.obtenerDatosFormularios(Integer.parseInt(id_usuario));

        int cont = 1;
        if (c.moveToFirst()) {
            do {
                int numId = c.getColumnIndex("id");
                int numFecha = c.getColumnIndex("fecha");
                int numEstado = c.getColumnIndex("estado");
                int numNombre = c.getColumnIndex("titulo");
                int numImagen = c.getColumnIndex("imagen");

                int textoId = c.getInt(numId);
                int textoFecha = c.getInt(numFecha);
                int textoEstado = c.getInt(numEstado);
                String textoNombre = c.getString(numNombre);
                String textoImagen = c.getString(numImagen);

                String fechaAux = Integer.toString(textoFecha);
                String fecha = fechaAux.substring(6, 8).concat("/").concat(fechaAux.substring(4, 6).concat("/").concat(fechaAux.substring(0, 4)));
                String texto = "";
                textoNombre = "Formulario: " + textoNombre;

                formulario = new listaFormularios(textoId, textoNombre, fecha, texto, textoEstado, textoImagen);
                lista.add(formulario);
                cont++;
            } while (c.moveToNext());
        }
        noFormulario = (TextView) findViewById(R.id.text_no_formulario);
        if (cont==1) { noFormulario.setText("No tienes ningun formulario pendiente!!!"); }

        AdaptadorFormularios adaptador = new AdaptadorFormularios(this);

        lstOpciones = (ListView) findViewById(R.id.LstOpciones);
        lstOpciones.setAdapter(adaptador);

        lstOpciones.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            public void onItemClick(AdapterView<?> a, View v, int position, long id) {
                int id_formulario = ((listaFormularios)a.getAdapter().getItem(position)).getId();

                Intent intent = new Intent(indexFormularios.this,formularioActivity.class);
                intent.putExtra("id", id_usuario);
                intent.putExtra("estado", estado);
                intent.putExtra("id_formulario", id_formulario);
                startActivity(intent);
            }
        });
    }

    class AdaptadorFormularios extends ArrayAdapter {

        Activity context;

        AdaptadorFormularios(Activity context) {
            super(context, R.layout.lista_formularios, lista);
            this.context = context;
        }

        @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
        public View getView(int position, View convertView, ViewGroup parent) {
            LayoutInflater inflater = context.getLayoutInflater();
            View item = inflater.inflate(R.layout.lista_formularios, null);

            Button btTitulo = (Button) item.findViewById(R.id.bt_sugerencia);
            Button btCancelar = (Button) item.findViewById(R.id.bt_cancelar);
            TextView textFormulario = (TextView) item.findViewById(R.id.textFormulario);
            TextView textFecha = (TextView) item.findViewById(R.id.textFecha);

            textFormulario.setText(lista.get(position).getTitulo());
            textFecha.setText(lista.get(position).getFecha());

            String imagen = lista.get(position).getImagen();
            //Extrae el nombre de la imagen sin la extensión
            int pos = imagen.length()-4;
            imagen = imagen.substring(0,pos);

            Drawable imgs;
            int idimagen=getResources().getIdentifier(imagen,"drawable","com.play2gether");
            imgs = getResources().getDrawable(idimagen);
            btTitulo.setBackground(imgs);

            btTitulo.setFocusable(false);
            btCancelar.setFocusable(false);
            textFormulario.setFocusable(false);
            textFecha.setFocusable(false);

            return (item);
        }
    }
    private void configurarNavbar() {
        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
        actionBar.setCustomView(R.layout.navbar);

        Button btFormularioNV = (Button) findViewById(R.id.btFormularioNV);
        Button btSugerenciaNV = (Button) findViewById(R.id.btSugerenciaNV);
        Button btOpcionesNV = (Button) findViewById(R.id.btOpcionesNV);
        Button btLogoNV = (Button) findViewById(R.id.btLogoNV);
        Button btAtras = (Button) findViewById(R.id.bt_atras);
        Button btSincronizar = (Button) findViewById(R.id.bt_sincronizar);

        TextView tituloNav = (TextView) findViewById(R.id.tituloLayout);
        tituloNav.setText("Formularios");

        //Botones para el navbar
        btOpcionesNV.setOnClickListener(this);
        if (!estado[0].equals("2")) {
            btFormularioNV.setAlpha(0);
            btSugerenciaNV.setAlpha(0);
        } else {
            btFormularioNV.setOnClickListener(this);
            btSugerenciaNV.setOnClickListener(this);
        }
        btLogoNV.setOnClickListener(this);
        btAtras.setOnClickListener(this);
        btSincronizar.setOnClickListener(this);
        //btAtras.setAlpha(0);
        //btSincronizar.setAlpha(0);
        //btOpcionesNV.setAlpha(0);

        boolean haySugerencias = db.comprobarSugerencias(id_usuario);
        if (haySugerencias){ btSugerenciaNV.setBackground(this.getResources().getDrawable(R.drawable.bt_sugerencias_notificacion)); }
        else { btSugerenciaNV.setBackground(this.getResources().getDrawable(R.drawable.bt_sugerencia_nav)); }

        boolean hayFormularios = db.comprobarFormularios(id_usuario);
        if (hayFormularios){ btFormularioNV.setBackground(this.getResources().getDrawable(R.drawable.bt_formulario_notificacion)); }
        else { btFormularioNV.setBackground(this.getResources().getDrawable(R.drawable.bt_formulario_nav)); }
    }

    private View.OnClickListener accionBoton = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(indexFormularios.this, formularioActivity.class);
            intent.putExtra("id",id_usuario);
            intent.putExtra("estado",estado);
            startActivity(intent);
            finish();
        }
    };
    private View.OnClickListener accionCancelar = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            AlertDialog.Builder alertDialog2 = new AlertDialog.Builder(indexFormularios.this);
            alertDialog2.setTitle("¿Quieres borrar el formulario?");
            alertDialog2.setMessage("Se borrará el formulario de tu lista");

            alertDialog2.setPositiveButton("ACEPTAR", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                }
            });
            alertDialog2.setNegativeButton("CANCELAR", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                }
            });

            alertDialog2.show();
        }
    };

    @Override
    public void onClick(View v) {
        Intent intent;
        intent = new Intent();

        switch (v.getId()) {
            //Botones para el natvar
            case R.id.btFormularioNV:
                intent.setClass(this,indexFormularios.class);
                intent.putExtra("id",id_usuario);
                intent.putExtra("estado",estado);
                finish();
                startActivity(intent);
                break;
            case R.id.btSugerenciaNV:
                intent.setClass(this,indexSugerencias.class);
                intent.putExtra("id",id_usuario);
                intent.putExtra("estado",estado);
                finish();
                startActivity(intent);
                break;
            case R.id.btOpcionesNV:
                intent.setClass(this,menuActivity.class);
                intent.putExtra("id",id_usuario);
                intent.putExtra("estado",estado);
                finish();
                startActivity(intent);
                break;
            case R.id.bt_atras:
                finish();
                break;
            case R.id.btLogoNV:
                finish();
                break;
            case R.id.bt_sincronizar:
                sincronizar();
                break;
        }
    }
    public void sincronizar(){
        Sincronizar sinc = new Sincronizar(id_usuario,this);
        sinc.sincronizar();

    };
}